# ----登录函数----
# 编写一个用户登录逻辑，用户名密码提前设置（列表嵌套字典存储），返回用户登录成功或者失败的结果。
# 要求：
# 	封装程函数，登录成功返回1，登录失败返回0；

# user1 = {'id': '1001', 'username': 'zhangsan', 'password': '123'}
# user2 = {'id': '1002', 'username': 'lisi', 'password': '123'}
# user3 = {'id': '1003', 'username': 'wangwu', 'password': '123'}
# user_list = [user1, user2, user3]

# def assert():
#     '''
#
#     :return: 返回1表示成功，返回2表示失败
#     '''
#     tag = 0
#     name = input('请输入用户名：')
#     pwd = input('请输入密码：')
#     for i in user_list:
#         if name == i['username'] and pwd == i['password']:
#             tag = 1
#             break
#     if tag == 1:
#         return 1  # 登录成功
#     else:
#         return 0  # 登录失败
#
#
# print(assert())

# ----商超管理系统（容器版）----
# 项目需求：
# 系统需要用户先登录，再进行操作，其中包含一下功能菜单：
# 1.显示商品列表
# 2.增加商品
# 3.删除商品
# 4.设置折扣
# 5.修改价格
# 6.按价格排序（升序、降序
# 7.退出
#   a.	使用列表嵌套字典的方式保存用户数据（包含用户名，密码，姓名）；
#   b.	使用列表嵌套字典的方式保存商品数据（包含编号，名称，价格，折扣）；
#   c.	编写用户登录的函数，返回登录结果；
#   d.	循环提示菜单，业务完毕时返回主菜单，退出时回到登陆页面；
#   e.	将功能菜单中的业务功能各自编写到函数中；
#   f.	用户选择不同业务编号时，调用已经写好的各种函数。
user1 = {'id': '1001', 'username': 'zhangsan', 'password': '123'}
user2 = {'id': '1002', 'username': 'lisi', 'password': '123'}
user3 = {'id': '1003', 'username': 'wangwu', 'password': '123'}
user_list = [user1, user2, user3]
product1 = {'id': '1001', 'price': 100, 'name': '苹果', 'discount': 7.9}
product2 = {'id': '1002', 'price': 15, 'name': '香蕉', 'discount': 6.3}
product3 = {'id': '1003', 'price': 3, 'name': '橘子', 'discount': 5.9}
product4 = {'id': '1004', 'price': 50, 'name': '火龙果', 'discount': 4.9}
product5 = {'id': '1005', 'price': 30, 'name': '草莓', 'discount': 3.9}
product_list = [product1, product2, product3, product4, product5]


def login():
    '''

    :return: 返回1表示成功登录；返回2表示登录失败
    '''
    tag = 0
    name = input('请输入用户名：')
    pwd = input('请输入密码：')
    for i in user_list:
        if name == i['username'] and pwd == i['password']:
            tag = 1
            break
    if tag == 1:
        return 1
    else:
        return 0


def show_productes():
    print('=' * 5, '欢迎来到易捷便利店', '=' * 5)
    for product in product_list:
        print(f"编号: {product['id']}, 名称: {product['name']}, "
              f"价格: {product['price']}, 折扣: {product['discount']}")


def add_product():
    list1 = []
    for product in product_list:
        list1.append(int(product['id']))
    newid = str(max(list1) + 1)
    price = float(input('输入商品的价格'))
    name = input('输入商品的名称：')
    discount = input('输入商品的折扣：')
    newproduct = {'id': newid, 'price': price, 'name': name, 'discount': discount}
    product_list.append(newproduct)
    print('添加商品成功')


#
# print(add_product())
#

def del_product():
    tag = 0
    delid = input('输入您需要删除的编号id：')
    for product in product_list:
        if delid == product['id']:
            tag = 1
            product_list.remove(product)
            print('删除成功')
            break
    if delid not in product['id']:
        print('商品编号不存在')


#
def set_discount():
    tag = 0
    setid = input('输入您需要修改商品折扣的编号id：')

    for product in product_list:
        if setid == product['id']:
            setdiscont = input('请输入修改的折扣：')
            product['discount'] = setdiscont
            print(f'修改折扣成功，现在的折扣是{setdiscont}')
            tag = 1
            break
    if setid not in product['id']:
        print('商品编号不存在')


#
#
# print(set_discount())
def mod_product():
    tag = 0
    modid = input('输入您需要修改商品价格的编号id：')
    for product in product_list:
        if modid == product['id']:
            modprice = input('请输入修改后的商品价格：')
            product['price'] = modprice
            tag = 1
            print('修改价格成功')
            break
    if modid not in product['id']:
        print('商品编号不存在')


#
#
# print(mod_product())


# 按照价格排序
def sort_productes():
    # product_list.sort(key=lambda z: z['price'])
    product_list.sort(key=lambda z: z['price'], reverse=True)
    print(product_list())


#
# print(sort_productes())

def sort_productes():
    sort = int(input('请选择排序方式1升序、2倒序:'))
    if sort == 1:
        product_list.sort(key=lambda z: z['price'])
        show_productes()
    elif sort == 2:
        product_list.sort(key=lambda z: z['price'], reverse=True)
        show_productes()
    else:
        print('请输入正确的选择方式')


def print_menu():
    print(r'----Welcome to my small shop----')
    print('1.显示')
    print('2.新增')
    print('3.删除')
    print('4.设置折扣')
    print('5.修改价格')
    print('6.按照价格进行排序')
    print('7.退出')


def main():
    r = login()
    if r == 1:
        while True:
            print_menu()
            choice = int(input('请输入你的选择：'))
            if choice == 1:
                show_productes()
            elif choice == 2:
                add_product()
            elif choice == 3:
                del_product()
            elif choice == 4:
                set_discount()
            elif choice == 5:
                mod_product()
            elif choice == 6:
                sort_productes()
            elif choice == 7:
                print('正在退出')
                break
            else:
                print('输入有误，请重新输入')
    else:
        print('登录失败')


main()
# if __name__ == '__main__':
#     print_menu()
# ----学生管理系统（容器版）----
# 使用自定义函数，完成对程序的模块化
# 学生信息包含：学号、姓名、性别、手机号
# 该系统具有的功能：添加、删除、修改、显示、退出系统
# 设计思路：
# 	提示用户选择功操作
# 	获取用户选择的功能
# 	根据用户的选择，分别调用不同的函数
# 	新增：学号：自动生成
# 	删除：根据输入的学号删除信息
# 	修改：根据输入的学号修改信息
student1={'id':1001,'name':'小张','sex':'男','phone':'17534741512'}
student1={'id':1001,'name':'小吴','sex':'男','phone':'17534741512'}
student1={'id':1001,'name':'小王','sex':'男','phone':'17534741512'}